Parallel Programming with CHARM :
نویسنده
چکیده
This Paper describes the research centered on the Charm Parallel Programming System. Charm is a portable parallel programming system under development at the University of Illinois for the past six years. The system enhances latency tolerance via message driven execution, supports dynamic load balancing for medium grain tasks, and provides innovative language features such as speciically shared variables and \branch ooce" processes. The paper describes the philosophy behind the system, and elaborates on its features and their motivation. Completed and ongoing related projects are summarized, including: Dagger, a textual notation and a corresponding visual language for simplifying expression of split-phase communication that is necessary in message driven execution; A subset of the High Performance Fortran that demonstrates superior latency tolerance; Performance feedback and debugging tools that exploit the speciicity of information available to the runtime system to give the user a highly reened and usable feedback; strategies for parallel execution of speculatively parallel computations; and a summary of preliminary applications.
منابع مشابه
Charm++ & MPI: Combining the Best of Both Worlds
MPI and Charm++ embody two distinct perspectives for writing parallel programs. While MPI provides a processor-centric, user-driven model for developing parallel codes, Charm++ supports work-centric, overdecompositionbased, system-driven parallel programming. One or the other can be the best or most natural fit for distinct modules that constitute a parallel application. In this paper, we prese...
متن کاملThe Charm Parallel Programming Language and System : Part I | Description of Language Features
We describe a parallel programming system for developing machine independent programs for all MIMD machines. Many useful approaches to this problem are seen to require a common base of support, which can be encapsulated in a language that abstracts over resource management decisions and machine speciic details. This language can be used for implementing other high level approaches as well as fo...
متن کاملControlling Concurrency and Expressing Synchronization in Charm++ Programs
Charm++ is a parallel programming system that evolved over the past 20 years to become a well-established system for programming parallel science and engineering applications, in addition to the combinatorial search applications with which it started. At its earliest point, the precursor to Charm++, the Chare Kernel, was a purely reactive specification, similar to most actor languages. This pap...
متن کاملInformation Sharing Mechanisms in Parallel Programs
Most parallel programming models provide a single generic mode in which processes can exchange information with each other. However, empirical observation of parallel programs suggest that processes share data in a few distinct and speciic modes. We argue that such modes should be identiied and explicitly supported in parallel languages and their associated models. The paper describes a set of ...
متن کاملCompiler Support for Productive Message - Driven Parallel Programming by Aaron
Historically, the creators of parallel programming models have employed two different approaches to make their models available to developers: either by providing a library with hooks for common programming languages, by developing a new language and associated infrastructure altogether. Despite the flexibility of the language approach and the great number of parallel languages that have been c...
متن کاملStructured Dagger: A Coordination Language for Message-Driven Programming
Message-Driven Programming style avoids the use of blocking receives and allows overlap of computation and communication by scheduling processes (or objects) depending on availability of messages. Charm is a parallel programming system that uses message-driven execution to exhibit latency-tolerance. Charm supports objects whose methods can be triggered by remote objects asynchronously. Such asy...
متن کامل